﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ASP_klient
{
    public partial class Person : System.Web.UI.Page
    {
        WilkeServiceRef.WilkeServiceClient wilkeService;
                

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["wilkeService"] == null)
                Session["wilkeService"] = new WilkeServiceRef.WilkeServiceClient();
            wilkeService = Session["wilkeService"] as WilkeServiceRef.WilkeServiceClient;

            if (!IsPostBack)
            {
                UdfyldDropDownList_Kontrakt();  // Opret data i listbox med kontrakttyper
                DropDownList_Kontrakt.Text = "- NA";
                lblPersonID.Visible = false;
                //ChkAktiv.Visible = false;
                lblRettet.Visible = false;

                // Benyt Session-variablen der indeholder: "valgt bruger".
                if (Session["Bruger"] != null)
                {
                    WilkeServiceRef.Bruger bruger = Session["Bruger"] as WilkeServiceRef.Bruger;

                    lblPersonID.Text = bruger.personID.ToString();
                    lblPersonID.Visible = true;
                    txtNavn.Text = bruger.navn;
                    txtPassword.Text = bruger.password;
                    chkAdministrator.Checked = bruger.administrator;
                    chkBrugerAktiv.Checked = bruger.aktiv;
                    //ChkAktiv.Visible = true;
                    DropDownList_Kontrakt.Text = bruger.KontraktType.ToString();
                    txtMailAdr.Text = bruger.email;
                    txtAdr.Text = bruger.adresse;
                    txtPostNr.Text = bruger.postnr.ToString();
                    txtBy.Text = bruger.by;
                    txtTlf.Text = bruger.telefonnr.ToString();
                    txtKontoNr.Text = bruger.kontonr.ToString();
                    txtRegNr.Text = bruger.regnr.ToString();
                    lblRettet.Visible = false;
                }
                //else
                //    lblPersonID.Visible = false;
            }
        }


        protected void btnGem_Click(object sender, EventArgs e)
        {
            string kontraktType = DropDownList_Kontrakt.SelectedItem.Text;

            if (lblPersonID.Text == "") // En ny bruger skal oprettes.
            {
                if (txtNavn.Text != "") // I det mindste ét navn er indtastet!
                {
                    int id = wilkeService.OpretBruger(txtNavn.Text, txtAdr.Text, int.Parse(txtPostNr.Text), txtBy.Text,
                        Int64.Parse(txtKontoNr.Text), int.Parse(txtRegNr.Text), txtMailAdr.Text, chkAdministrator.Checked,
                        int.Parse(txtTlf.Text), txtPassword.Text, kontraktType);

                    lblPersonID.Text = id.ToString();
                    lblPersonID.Visible = true;
                    chkBrugerAktiv.Checked = true;
                    //chkBrugerAktiv.Visible = true;
                    lblRettet.Text = "OK.  Brugeren er oprettet.";
                    lblRettet.Visible = true;
                }
            }
            else   // En bruger redigeres
            {
                WilkeServiceRef.Bruger bruger = wilkeService.RetBruger(int.Parse(lblPersonID.Text), txtNavn.Text, txtAdr.Text,
                    int.Parse(txtPostNr.Text), txtBy.Text, Int64.Parse(txtKontoNr.Text), int.Parse(txtRegNr.Text),
                    txtMailAdr.Text, chkAdministrator.Checked, chkBrugerAktiv.Checked, int.Parse(txtTlf.Text), txtPassword.Text, kontraktType);

                if (bruger != null)
                {
                    lblRettet.Text = "OK.  Brugerens data er rettet.";
                    lblRettet.Visible = true;
                }
                else
                {
                    lblRettet.Text = "NB!  Brugerens data kunne ikke rettes.";
                    lblRettet.Visible = true;
                }
            }
        }


        protected void btnRyd_Click(object sender, EventArgs e)
        {
            lblPersonID.Text = "";
            lblPersonID.Visible = false;
            txtNavn.Text = "";
            txtPassword.Text = "";
            chkAdministrator.Checked = false;
            chkBrugerAktiv.Checked = false;
            //ChkAktiv.Visible = false;
            DropDownList_Kontrakt.Text = "- NA";
            txtMailAdr.Text = "";
            txtAdr.Text = "";
            txtPostNr.Text = "";
            txtBy.Text = "";
            txtTlf.Text = ""; 
            txtKontoNr.Text = "";
            txtRegNr.Text = "";
            lblRettet.Visible = false;
        }


        protected void UdfyldDropDownList_Kontrakt()
        {
            DropDownList_Kontrakt.Items.Clear();

            WilkeServiceRef.Kontrakt[] kontrakter = wilkeService.VisKontrakter();

            foreach (WilkeServiceRef.Kontrakt k in kontrakter)
            {
                DropDownList_Kontrakt.Items.Add(k.Kontrakttype);
            }
        }
    }
}